// non-strict: no error
require(__dirname).test({
  xml: '<root attr1="first"attr2="second"/>',
  expect: [
    ['opentagstart', { name: 'root', attributes: {} }],
    ['attribute', { name: 'attr1', value: 'first' }],
    ['attribute', { name: 'attr2', value: 'second' }],
    [
      'opentag',
      {
        name: 'root',
        attributes: { attr1: 'first', attr2: 'second' },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'root'],
  ],
  strict: false,
  opt: { lowercase: true },
})

// strict: should give an error, but still parse
require(__dirname).test({
  xml: '<root attr1="first"attr2="second"/>',
  expect: [
    ['opentagstart', { name: 'root', attributes: {} }],
    ['attribute', { name: 'attr1', value: 'first' }],
    [
      'error',
      'No whitespace between attributes\nLine: 0\nColumn: 20\nChar: a',
    ],
    ['attribute', { name: 'attr2', value: 'second' }],
    [
      'opentag',
      {
        name: 'root',
        attributes: { attr1: 'first', attr2: 'second' },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'root'],
  ],
  strict: true,
  opt: {},
})

// strict: other cases should still pass
require(__dirname).test({
  xml: '<root attr1="first" attr2="second"/>',
  expect: [
    ['opentagstart', { name: 'root', attributes: {} }],
    ['attribute', { name: 'attr1', value: 'first' }],
    ['attribute', { name: 'attr2', value: 'second' }],
    [
      'opentag',
      {
        name: 'root',
        attributes: { attr1: 'first', attr2: 'second' },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'root'],
  ],
  strict: true,
  opt: {},
})

// strict: other cases should still pass
require(__dirname).test({
  xml: '<root attr1="first"\nattr2="second"/>',
  expect: [
    ['opentagstart', { name: 'root', attributes: {} }],
    ['attribute', { name: 'attr1', value: 'first' }],
    ['attribute', { name: 'attr2', value: 'second' }],
    [
      'opentag',
      {
        name: 'root',
        attributes: { attr1: 'first', attr2: 'second' },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'root'],
  ],
  strict: true,
  opt: {},
})

// strict: other cases should still pass
require(__dirname).test({
  xml: '<root attr1="first"  attr2="second"/>',
  expect: [
    ['opentagstart', { name: 'root', attributes: {} }],
    ['attribute', { name: 'attr1', value: 'first' }],
    ['attribute', { name: 'attr2', value: 'second' }],
    [
      'opentag',
      {
        name: 'root',
        attributes: { attr1: 'first', attr2: 'second' },
        isSelfClosing: true,
      },
    ],
    ['closetag', 'root'],
  ],
  strict: true,
  opt: {},
})
